home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / QuickDraw 3D / Samples / SampleCode / Plug-in - DistanceProxyGroup / header / dpg.h next >
Encoding:
C/C++ Source or Header  |  1997-08-14  |  2.9 KB  |  122 lines  |  [TEXT/MPS ]

  1. /******************************************************************************
  2.  **                                                                             **
  3.  **     Module:        dpg.h                                                      **
  4.  **                                                                          **
  5.  **                                                                          **
  6.  **                                                                          **
  7.  **                                                                          **
  8.  **                                                                          **
  9.  **     Copyright (C) 1995-1996 Apple Computer, Inc.  All rights reserved.     **
  10.  **                                                                          **
  11.  **                                                                          **
  12.  *****************************************************************************/
  13.  
  14. #ifndef DistanceProxyGroup_sys_h
  15. #define DistanceProxyGroup_sys_h
  16.  
  17. #if PRAGMA_ONCE
  18.     #pragma once
  19. #endif
  20.  
  21. #include "QD3D.h"
  22. #include "QD3DGroup.h"
  23. #include "DPGGroup.h"
  24.  
  25. /******************************************************************************
  26.  **                                                                             **
  27.  **                    Distance Proxy Display Groups                              **
  28.  **                                                                             **
  29.  *****************************************************************************/
  30.  
  31. typedef struct TQ3DistanceData {
  32.     float                distance;
  33.     TQ3GroupPosition     position;
  34. } TQ3DistanceData;
  35.  
  36. typedef struct TQ3DistanceIOData {
  37.     float                distance;
  38.     unsigned long        index;
  39. } TQ3DistanceIOData;
  40.  
  41. typedef struct TQ3DistanceProxyDisplayGroupPrivate {
  42.     TQ3Point3D                refPt;
  43.     TQ3DPGFlag                flag;
  44.     float                    d;
  45.     TQ3GroupPosition        position;
  46.     
  47.     TQ3DistanceData            *distTbl;
  48.     unsigned long            distTblCnt;
  49.  
  50.     TQ3DistanceIOData        *distIOTbl;
  51.     unsigned long            distIOTblCnt;
  52. } TQ3DistanceProxyDisplayGroupPrivate;
  53.  
  54.  
  55. typedef struct TQ3DPGPositionPrivate {
  56.     TQ3Boolean    flag;
  57.     float        distance;
  58. } TQ3DPGPositionPrivate;
  59.  
  60. extern void *EiGroup_GetPositionPrivate(
  61.     TQ3XObjectClass            objectClass,
  62.     TQ3GroupObject            group,
  63.     TQ3GroupPosition        gPos);
  64.  
  65. extern TQ3XObjectClass EgDistanceProxyDisplayGroupClass;
  66.  
  67.  
  68. #define DPG_GETPRIVATE(x)\
  69.      (TQ3DistanceProxyDisplayGroupPrivate *)Q3XObjectClass_GetPrivate(EgDistanceProxyDisplayGroupClass, (x))
  70.  
  71. #define DPG_POSITION_GETPRIVATE(group, pos)\
  72.      (TQ3DPGPositionPrivate *)Q3XGroup_GetPositionPrivate( (group), (pos))
  73.  
  74.  
  75. #ifdef __cplusplus
  76. extern "C" {
  77. #endif /*  __cplusplus  */
  78.  
  79.  
  80. TQ3Status exDistanceProxyGroup_Register( 
  81.     void);
  82.  
  83. TQ3GroupObject exDistanceProxyGroup_New(
  84.     TQ3Point3D        *position,
  85.     unsigned long    flags);
  86.  
  87. TQ3GroupPosition exDistanceProxyGroup_AddObjectDistance(
  88.     TQ3GroupObject        group,
  89.     TQ3Object            object,
  90.     float                distance);
  91.  
  92. TQ3Status exDistanceProxyGroup_SetFlag(
  93.     TQ3GroupObject        group,
  94.     TQ3DPGFlag             flag);
  95.  
  96. TQ3Status exDistanceProxyGroup_GetFlag(
  97.     TQ3GroupObject        group,
  98.     TQ3DPGFlag             *flag);
  99.  
  100. TQ3Status exDistanceProxyGroup_SetReferencePoint(
  101.     TQ3GroupObject        group,
  102.     TQ3Point3D             *refPt);
  103.  
  104. TQ3Status exDistanceProxyGroup_GetReferencePoint(
  105.     TQ3GroupObject        group,
  106.     TQ3Point3D             *refPt);
  107.  
  108. TQ3Boolean exDistanceProxyGroup_SetDistanceAtPosition(
  109.     TQ3GroupObject        group,
  110.     TQ3GroupPosition    position,
  111.     float                distance);
  112.  
  113. TQ3Boolean exDistanceProxyGroup_GetDistanceAtPosition(
  114.     TQ3GroupObject        group,
  115.     TQ3GroupPosition    position,
  116.     float                *distance);
  117.  
  118. #ifdef __cplusplus
  119. }
  120. #endif /*  __cplusplus  */
  121.  
  122. #endif